package org.nstack.header.network.service;

import org.nstack.header.core.Completion;
import org.nstack.header.core.NoErrorCompletion;
import org.nstack.header.network.l3.L3NetworkInventory;
import org.nstack.header.vm.VmInstanceSpec;

import java.util.List;


public interface NetworkServiceDnsBackend {
    NetworkServiceProviderType getProviderType();

    void addDns(L3NetworkInventory l3, List<String> dns, Completion completion);

    void removeDns(L3NetworkInventory l3, List<String> dns, Completion completion);

    void applyDnsService(List<DnsStruct> dnsStructList, VmInstanceSpec spec, Completion completion);

    void releaseDnsService(List<DnsStruct> dnsStructsList, VmInstanceSpec spec, NoErrorCompletion completion);
}
